From OBJ to ML to Coq
نویسندگان
چکیده
Rigorous program development is notoriously difficult because it involves many aspects, among which specification, programming, verification, code reuse, maintenance, and version management. Besides, these various tasks are interdependent, requiring going back and forth between them. In this paper, we are interested in certain language features and in languages which help make the user’s life easier for developing programs satisfying their specifications. Our interest focuses on three implemented specification/programming languages, OBJ [14, 18], ML[27] and Coq [10], which have played an important historical role in the process of coming up with better languages. And indeed, both OBJ and ML had many successors or dialects, among which OBJ3 [20], Cafe-OBJ [28], Maude [9] and ELAN [2] for OBJ, and SML [23], CAML [30] and OCaml [29] among others for ML. Coq has evolved with many different versions keeping the same name, following the evolution of type theory from the calculus of constructions [11] to the extended calculus of constructions [22] and the development of the theory of inductive types from Martin-Löf’s type theory [25, 26] to the calculus of inductive constructions [12, 31]. Other proof assistants based on a similar historical development include Lego [21], Alf [24] and Agda/Alfa [1]. Coq remains the most mature and widely used of them all. We explain briefly in the introduction what important properties are shared by these three languages, and how OBJ has been influential in
منابع مشابه
Production of coenzyme Q by hydrocarbon-assimilating bacteria.
(pH 7.0) in the following medium: 5% nhexadecane (Tokyo Kasei Co., Tokyo, Japan), 0.1% KH2PO4, 0.4% (NH4)2S04, 0.05% FeSO4 7Hq0, 0.05% MgS04-7H20, and 0.4% yeast extract (Difco). A total of 10.4 g of dry cells was obtained from 2 liters of culture broth in 2 days at 30 C. The CoQ fraction was extracted as described by Lavate et al. (3). A 1-ml amount of the nonsaponifiable extract was taken up ...
متن کاملDefensive Certification in Coq with ML Type-Safe Oracles
Initially promoted by CompCert, the embedding of untrusted Ocaml code into extracted code from Coq – through a skeptical approach – significantly simplifies Coq developments of formally proved software. However, as illustrated by various examples of this paper, such an embedding could be unsound. This paper conjectures sufficient conditions to ensure soundness. And, it illustrates the power of ...
متن کاملAutomatic Semantic-preserving Conversion Between OBJ and CityGML
We investigate the automatic conversion between two substantially different formats used in 3D city models: the ubiquitous but semantically poor Wavefront OBJ and the semantically rich but less used OGC standard CityGML. We elaborate on their differences and on the challenges involved in their conversion, such as the inference of semantics in an OBJ file for their use in CityGML, and the storag...
متن کاملAssociation of colony morphology with coenzyme Q(10) production and its enhancement from Rhizobium radiobacter T6102W by addition of isopentenyl alcohol as a precursor.
Rhizobium radiobacter T6102 was morphologically purified by the aniline blue agar plates to give two distinct colonies; white smooth mucoid colony (T6102W) and blue rough colony (T6102B). The coenzyme Q(10) (CoQ(10)) was produced just by T6102W, showing 2.0 mg/g of CoQ(10) content, whereas the T6102B did not produce the CoQ(10). All of the used CoQ(10) biosynthetic precursors enhanced the CoQ(1...
متن کاملProving Correctness of the Translation from Mini - ML to the CAM withthe Coq Proof Development
In this article we show how we proved correctness of the translation from a small applicative language with recursive deenitions (Mini-ML) to the Categorical abstract machine (CAM) using the Coq system. Our aim was to mechanise the proof of J. Despeyroux 10]. Like her, we use natural semantics to axiomatise the semantics of our languages. The axiomatisations of inferences systems and of the lan...
متن کامل